Forum Linux.débutant Quelle commande permet de lancer mon logiciel graphique préféré ?

Posté par  (site web personnel, Mastodon) . Licence CC By‑SA.
9
12
déc.
2023

Salut,

Un truc qui m'a toujours turlupiné c'est de connaître le nom du logiciel/la commande d'un soft que je lance automagiquement quand je double-clique sur un fichier.

Prenons un exemple: Je suis sur Linux Ubuntu 20.04. Je double clique sur une image et un logiciel de visualisation d'images se lance pour me montrer ladite image.

Je trouve que ce visualiseur par défaut fonctionne très bien et je voudrais pouvoir le lancer en ligne de commande directement, comment je fait ?

Pour le visualiseur je cherche le «à propos» qui me donne le nom du logiciel (mais pas de la commande), pour le coup c'est «eye of gnome». Et pour avoir la commande je pars sur canardcanardpartez pour la trouver enfin : eog. Mais il faut internet … ainsi qu'une rubrique «àpropos» dans l'interface.

N'existe-t-il pas un truc permettant de connaître la commande qui lance le logiciel de la fenêtre que j'ai sous le nez ?

  • # xprop avec X11

    Posté par  . Évalué à 10. Dernière modification le 13 décembre 2023 à 11:36.

    Je vois bien un truc avec le serveur graphique X11. C'est la commande "xprop" à lancé dans un terminal, ensuite tu cliques sur une fenêtre et tu obtiens de l'info sur la sortie standard dans le terminal. La linge avec "WM_CLASS(STRING)" te donne le nom de la commande.

     $ xprop
        WM_STATE(WM_STATE):
        window state: Normal
        icon window: 0x0
        WM_HINTS(WM_HINTS):
        Client accepts input or input focus: True
        Initial state is Normal State.
        window id # of group leader: 0x1000001
        _GTK_THEME_VARIANT(UTF8_STRING) = "dark"
        XdndAware(ATOM) = BITMAP
        _GTK_WINDOW_OBJECT_PATH(UTF8_STRING) = "/org/gnome/eog/window/1"
        _GTK_APPLICATION_OBJECT_PATH(UTF8_STRING) = "/org/gnome/**eog**"
        _GTK_UNIQUE_BUS_NAME(UTF8_STRING) = ":1.49"
        _GTK_APPLICATION_ID(UTF8_STRING) = "org.gnome.eog"
        _NET_WM_OPAQUE_REGION(CARDINAL) = 5, 5, 1044, 1049
        _MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x2, 0x0, 0x0, 0x0, 0x0
        _NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NORMAL
        _NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 16777225, 16777226
        _NET_WM_USER_TIME_WINDOW(WINDOW): window id # 0x1000008
        WM_CLIENT_LEADER(WINDOW): window id # 0x1000001
        _NET_WM_PID(CARDINAL) = 35422
        WM_LOCALE_NAME(STRING) = "en_US.UTF-8"
        WM_CLIENT_MACHINE(STRING) = "arch"
        WM_NORMAL_HINTS(WM_SIZE_HINTS):
        program specified location: 0, 0
        program specified minimum size: 472 by 350
        program specified base size: 360 by 350
        window gravity: NorthWest
        WM_PROTOCOLS(ATOM): protocols WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING, _NET_WM_SYNC_REQUEST
        WM_CLASS(STRING) = "**eog**", "Eog"
        WM_ICON_NAME(STRING) = "Eye of GNOME"
        _NET_WM_ICON_NAME(UTF8_STRING) = "Eye of GNOME"
        WM_NAME(STRING) = "Eye of GNOME"
        _NET_WM_NAME(UTF8_STRING) = "Eye of GNOME"

    By the way vous pouvez voir ce que j'utilise le nom de la machine que j'utilise pour écrire ce message --> [] (désolé pour l'humour de merde)

    Ça fait partie des trucs et astuces de dwm (le gestionnaire de fenêtre suckless) pour configurer le placement des fenêtres dans les tags. Il faudrait que je retrouve le lien.
    Le meilleur lien que j'ai trouvé:
    https://wiki.gentoo.org/wiki/Dwm#Assigning_applications_to_window_tags

    Je n'ai aucune idée de comment faire ça avec Wayland (il faut que je me mette à jour, dur, dur)

    • [^] # Re: xprop avec X11

      Posté par  . Évalué à 1.

      By the way vous pouvez voir ce que j'utilise le nom de la machine que j'utilise pour écrire ce message -->

      J'aime bien l'humour alsacien !
      :-D

      --> []

    • [^] # Re: xprop avec X11

      Posté par  (site web personnel, Mastodon) . Évalué à 3.

      Ho yes, merci ça marche nickel !

      Par contre ça vomis beaucoup de truc, même des icônes en ascii art !
      Du coup un petit grep permet d'avoir l'info désirée :

      xprop | grep WM_CLASS
      WM_CLASS(STRING) = "eog", "Eog"
      

      Je ne sais pas si je suis sous Wayland mais en tout cas ça marche avec une Ubuntu 20.04.

      J'ai plus qu'une balle

  • # xdg-open, xdg-mime

    Posté par  . Évalué à 6. Dernière modification le 12 décembre 2023 à 20:51.

    Alors c'est super simple ! Il n'y a que quatre niveaux d'indirection avec un bureau moderne :

    ~ $ xdg-mime query filetype recette_secrete_de_la_tartiflette_aux_moules.pdf
    application/pdf
    ~ $ xdg-mime query default application/pdf
    org.gnome.Evince.desktop
    ~ $ find / 2> /dev/null | grep org.gnome.Evince.desktop
    /usr/share/applications/org.gnome.Evince.desktop
    ~ $ grep org.gnome.Evince.desktop /usr/share/applications/org.gnome.Evince.desktop
    ~ $ grep ^Exec /usr/share/applications/org.gnome.Evince.desktop
    Exec=evince %U
    Exec=evince --new-window
    

    C'est y a peut-être une commande qui fait ça toute seul, mais je ne la connais pas :(.

    (voir aussi xdg-utils sur le Wiki d'Archlinux)

    • [^] # Re: xdg-open, xdg-mime

      Posté par  (site web personnel) . Évalué à 6. Dernière modification le 13 décembre 2023 à 08:18.

      Pitié, pas

      find / 2> /dev/null | grep org.gnome.Evince.desktop

      C’est beaucoup plus propre de faire

      find / -type f -name org.gnome.Evince.desktop 2> /dev/null

      Being a sysadmin is easy. As easy as riding a bicycle. Except the bicycle is on fire, you’re on fire and you’re in Hell.

      • [^] # Re: xdg-open, xdg-mime

        Posté par  . Évalué à 4. Dernière modification le 13 décembre 2023 à 08:52.

        Voire même :

        find / -type f -name $(xdg-mime query default `xdg-mime query filetype recette_secrete_de_la_tartiflette_aux_moules.pdf`) 2> /dev/null | xargs grep ^Exec
        

        Bien plus propre (pour une définition très spéciale de la propreté).

      • [^] # Re: xdg-open, xdg-mime

        Posté par  . Évalué à 5.

        Note que pour être tout à fait équivalent à la version avec grep, il faudrait plutôt utiliser -name '*org?gnome?Evince?desktop*', puisque le grep recherche le pattern n'importe où dans la ligne, et que le . correspond à n'importe quel caractère.
        Mais c'était probablement un bug dans la version original ;-)

  • # htop

    Posté par  . Évalué à 4. Dernière modification le 12 décembre 2023 à 21:47.

    N'existe-t-il pas un truc permettant de connaître la commande qui lance le logiciel de la fenêtre que j'ai sous le nez ?

    htop dans un terminal affiche les commandes des logiciels lancés par l'utilisateur, les processus, etc

    Titre de l'image

    • [^] # Re: htop

      Posté par  . Évalué à 4.

      tu fait tourner glxgears ? :O

      • [^] # Re: htop

        Posté par  . Évalué à 1.

        Tu dois confondre…

    • [^] # Re: htop

      Posté par  (site web personnel, Mastodon) . Évalué à 2.

      htop dans un terminal affiche les commandes des logiciels lancés par l'utilisateur, les processus, etc

      Oui c'est ce que j'utilisais habituellement. Mais il y a trop de processus à browser pour s'y retrouver.

      Non, la méthode xprop est exactement ce que je cherchais : on lance la commande, on click sur la fenêtre concernée et on a le nom :)

      J'ai plus qu'une balle

      • [^] # Re: htop

        Posté par  . Évalué à 2.

        Mais il y a trop de processus à browser pour s'y retrouver

        Ne pas oublier de désactiver l'affichage des threads
        htop -u martoni n'affichera que les processus lancé par l'utilisateur martoni
        Voir man htop

        • [^] # Re: htop

          Posté par  . Évalué à 1. Dernière modification le 14 décembre 2023 à 11:33.

          ça semble la meilleure option sous wayland (à moins que ce soit une fenêtre Xwayland)

  • # ps

    Posté par  (site web personnel) . Évalué à 3.

    Avec ps, il y a évidemment la méthode récursive :

     ps -ef |grep 'nom de la commande'

    où le nom de la commande est trouvé grâce à l'étape précédente.

    Sinon, ps -u permet souvent de s'y retrouver plus facilement surtout quand on peut faire

    ps -u |grep 'nom du fichier ouvert'

    « IRAFURORBREVISESTANIMUMREGEQUINISIPARETIMPERAT » — Odes — Horace

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.